import request from '@/util/axios';
import type { RegistrationList, ViewExport, PackListItem, AddFileItem } from './resource_registration_type';

// 统一管理接口
enum API {
    LIST = '/api/asset_registration/list', // 列表
    CREATE = '/api/asset_registration/create', //上传报告
    DETAIL = '/api/asset_registration/detail', //查看
    DELETE = '/api/asset_registration/delete', //删除
    DOWNLOADIMG = '/api/asset/owner/download_icon', // 下载图片
    PACKLIST = '/api/asset/package/list', // 资产列表
    ADDFILES = '/api/asset_registration/file/add', // 上传文件
    DELFILES = '/api/asset_registration/file/delete' // 删除文件
  }

  // 登记列表
export async function registration_list(params: RegistrationList) {
    try {
      return await request.post(API.LIST, params);
    } catch (error) {
      console.error('获取资产登记列表时发生错误：', error);
      return error;
    }
  }

  // 查看报告
  export async function registration_detail(params: ViewExport) {
    try {
      return await request.get(API.DETAIL, {params});
    } catch (error) {
      console.error('获取资产登记详情时发生错误：', error);
      return error;
    }
  }

  // 上传报告
  export async function registration_Add(params: any ) {
    try {
      return await request.post(API.CREATE, params);
    } catch (error) {
      console.error('上传报告发生错误：', error);
      return error;
    }
  }

  // 删除登记
  export async function registration_delete(params: any) {
    try {
      return await request.get(API.DELETE, {params});
    } catch (error) {
      console.error('删除资产登记详情时发生错误：', error);
      return error;
    }
  }

   // 下载图片
   export async function registration_download(params: any) {
    try {
      return await request.get(API.DOWNLOADIMG, {params});
    } catch (error) {
      console.error('下载图片时发生错误：', error);
      throw new Error('无法下载图片，请稍后重试。');
    }
  }

    // 资产包列表
export async function pack_list(params: any) {
  try {
    return await request.get(API.PACKLIST, {params});
  } catch (error) {
    console.error('获取资产登记列表时发生错误：', error);
    throw new Error('无法资产登列表，请稍后重试。');
  }
}

// 上传文件
export async function file_Add(params: AddFileItem ) {
  try {
    return await request.post(API.ADDFILES, params);
  } catch (error) {
    console.error('上传文件发生错误：', error);
    throw new Error('无法上传文件报告，请稍后重试。');
  }
}

 // 删除文件
 export async function file_delete(params: any) {
  try {
    return await request.get(API.DELFILES, {params});
  } catch (error) {
    console.error('删除文件详情时发生错误：', error);
    return error;
  }
}

  
  